<?php

class Admin_AppController extends Zend_Controller_Action
{
    protected  $auth_kid;
    public function init()
    {
       $options = array(
                'layout' => 'layout',
                'layoutPath' => LAYOUT_PATH . "/admincp"
        );
        Zend_Layout::startMvc($options);
    }
    public function preDispatch()
    {
        $this->auth_kid = Zend_Auth::getInstance();
        $this->auth_kid->setStorage(new Zend_Auth_Storage_Session('admin'));
        //var_dump($this->auth_kid->getIdentity());
        if (!$this->auth_kid->hasIdentity()) {
    
            $this->_helper->redirector->gotoUrl('admin/index/login');
        }
    
    }
    public function indexAction()
    {
        // action body
    }

    public function listnewAction()
    {
        //$this->view->headScript()->appendFile(TEMPLATE_URL.'/min/g=js-ad-app-os');
        $this->view->headTitle('Danh ứng dụng mới tạo - '._page_title);
        $this->view->page_header = "Danh ứng dụng mới tạo";
        $mApp = new Application_Model_App();
        $data = $mApp->getTopNew();
        $this->view->data = $data;
    }

    public function detailAction()
    {
        $this->view->headScript()->appendFile(TEMPLATE_URL.'/min/g=js-admin-app-detail?12a');
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=css-admin-app-detail?a23');
        $id = $this->getRequest()->getParam('id');
        
        $mApp = new Application_Model_App();
        $mVers = new Application_Model_Appversion();
        $mScr = new Application_Model_Screenshot();
        $this->view->app_info = $mApp->getByID($id);
        $this->view->app_vers = $mVers->getByAppId($id);
        $this->view->app_scr = $mScr->getByAppID($id);
        
    }

    public function add1Action()
    {
        $this->view->page_header = 'Tạo ứng dụng mới';
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=cssDev');
        $this->view->headScript()->appendFile(TEMPLATE_URL.'/min/g=jsDevApp1');
        $mDev = new Application_Model_Devinfo();
        $this->view->dev = $mDev->getAll();
        
        $result = array();
               
        if($_POST){
            
            $_post = $this->getRequest()->getPost();
            $file_app = $_FILES['file_app'];
            $name_app = trim(strip_tags($_post['name_app']));
            $version_name = trim(strip_tags($_post['version_name']));
            $dev_id = trim(strip_tags($_post['dev_id']));
            $mApp = new Application_Model_App();
            $mAppVers = new Application_Model_Appversion();
            $auth = $this->auth_kid->getIdentity();
            
            $mApp->user_id = $auth->user_id;
            if(empty($name_app)){
                $result[]="Tên ứng dụng là bắt buột";
            }else{
                $mApp->app_name = $name_app;
                if(!empty($mApp->getByName($name_app))){
                    $result[] = 'Ứng dụng này đã có. Bạn không thể đăng.';
                }
                
            }
            
            if(empty($version_name)){
                $result[]="Phiên bản ứng dụng là bắt buột";
            }
            if(!$file_app){
                $result[]="Bạn chưa chọn file ứng dụng";
            }
            if($file_app && empty($result)){
                //var_dump($file_app);die;
                $apk = new NVL_Apk();
                try {
                    $app_info =  $apk->getApkInfo($file_app['tmp_name']);
                    $mApp->app_id = $app_info['PackageName'];
                    $b = $mApp->getByID($mApp->app_id);
                    if (!empty($b)){
                        $result[]='Bạn không thể tải lên ứng dụng này. File nguồn của bạn đã được tăng tải với tên là '.$b['app_name'];
                        $result[]='Nếu đây thật sự là ứng dụng của bạn. Vui lòng liên hệ với chúng tôi để được hổ trợ.';
                    }
                    $mAppVers->vers_info = json_encode($app_info);
                }catch (Exception $e){
                    $result[]='Source App của bạn không đúng. Vui lòng kiểm tra lại';
                }
            }
            
            
            if(empty($result)){
                
                $mAppVers->app_id = $mApp->app_id;
                $mApp->dev_id = $dev_id;
                $mAppVers->vers_id = $version_name;
                $mAppVers->vers_name = $version_name;
                $mAppVers->vers_size = $file_app['size'];
                $mOption = new Application_Model_Option();
                $server = $mOption->getByName('ftp_server');
                $server = json_decode($server,true);
                $ftp = new NVL_FtpUpload($server['server'], $server['user'], $server['password']);
                $path = $mApp->app_id.'/'.$mAppVers->vers_id;
                
                $name_app_src = $mApp->app_id.'.'.$version_name.'.apk';
                
                $a = $ftp->Upload($path,$name_app_src, $file_app['tmp_name']);
                if($a){
                    $mAppVers->vers_src = $path.'/'.$name_app_src;
                    if($mAppVers->insertNew()){
                        
                        if($mApp->insertAdd1()){
                            $this->redirect(_BASE_URL.'/admin/app/add2?id='.$mApp->app_id);
                        }else{
                            $result[]="Thêm mới không thành công. Hệ thống đang gặp sự cố! Vui lòng thông báo lỗi này đến chúng tôi, chân thành cảm ơn!";
                        }
                    }else {
                        $result[]="Thêm mới không thành công. Hệ thống đang gặp sự cố! Vui lòng thông báo lỗi này đến chúng tôi, chân thành cảm ơn!";
                    }
                    //var_dump($mApp);
                }else{
                    $result[]='Không thể tải file lên. Vui lòng thử lại sau 5 phút nữa.';
                }
                
                
            }
            
        }
        $this->view->result = $result;
    }

    public function add2Action()
    {
        $this->view->page_header = 'Tạo ứng dụng mới';
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=cssDev');
        if($this->getRequest()->getPost()){
                $_post = $this->getRequest()->getPost();
                $mApp = new Application_Model_App();
                $mApp->app_id = trim(strip_tags($this->getRequest()->getParam('id')));
                //$mApp->cat_id = trim(strip_tags($_post['type_app']));
                
                $data = array(
                        'app_type_id' => trim(strip_tags($_post['type_app'])),
                );
                if($mApp->updateData($data)){
                    $this->redirect(_BASE_URL.'/admin/app/add3?id='.$mApp->app_id);
                }
            }
    }

    public function add3Action()
    {
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=cssDev');
        $this->view->headScript()->appendFile(TEMPLATE_URL.'/min/g=jsDevApp3');
        $this->view->headScript()->appendFile(TEMPLATE_URL.'/assets/tinymce/tinymce.min.js');
        $result = array();
        $message = array();
        $app_id = trim(strip_tags($this->getRequest()->getParam('id')));
        if($this->getRequest()->getPost()){
            $_post = $this->getRequest()->getPost();
            $mApp = new Application_Model_App();
            $mApp->app_id = $app_id;
            $data = array();
        
            $tag_arr = explode(',', $_post['tags']);
            $mTag = new Application_Model_Tags();
        
            $func = new NVL_Functions();
            foreach ($tag_arr as $tag){
                $mTag->tag_name = trim(strip_tags($tag));
                $mTag->tag_slug = $func->ChangeToSlug($mTag->tag_name);
                $t = $mTag->getBySlug();
                $tag_id = $t['tag_id'];
                if(empty($t)){
                    $tag_id = $mTag->insertNew();
                }
                $mAppTag = new Application_Model_Apptag();
                $mAppTag->app_id = $app_id;
                $mAppTag->tag_id = $tag_id;
                if(empty($mAppTag->getExist())){
                    $mAppTag->insertNew();
                }
        
            }
            $data['app_video']=$_post['video_app'];
            //$data['app_des_short']=$_post['des_short'];
            $data['app_description']=$_post['description'];
            $result['message'] = $message;
        
            if($mApp->updateData($data)){
                $this->redirect(_BASE_URL.'/admin/app/add4?id='.$mApp->app_id);
            }
        
             
        }
         
        //$this->view->result = $result;
        $this->view->app_id = $app_id;
    }
    public function iconaddAction()
    {
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=cssDev');
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        /*-----------------------------------------------*/
        //---------Upload Icon APP
        $mApp = new Application_Model_App();
        if($_POST['upicon']){
            $data = array();
            $result = array();$result['status']=1;
            $message = array();
            if($_FILES)$icon_app_file = $_FILES['icon_app'];
            $mApp->app_id = trim(strip_tags($_POST['id_app']));
            if(isset($icon_app_file)){
    
                $ImgUpload = new NVL_ImgUpload();
                $ImgUpload->file_size=1;
                $ImgUpload->file_type = array('jpg','jpeg','png');
                $icon_app = $ImgUpload->doUpload(_BASE_PATH,'uploads/app/'.$mApp->app_id.'/icon/', $icon_app_file,'icon-'.$mApp->app_id,'Icon');
                if($icon_app['status']=='success'){
                    $data['app_icon'] = $icon_app['path'];
                    $message['path'] = _BASE_URL.'/'.$icon_app['path'].'?'.time();
                    $mApp->updateData($data);
                }else{
                    $result['status']=0;
                    $message = array_merge($message,$icon_app['message']);
                }
            }else {
                $result['status']=0;
                $message[]='Bạn chưa chọn icon ứng dụng';
            }
            $result['message'] = $message;
            die(json_encode($result));
        }
    
    
    }
    
    public function screenaddAction()
    {
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=cssDev');
        $this->_helper->layout()->disableLayout();
        $this->_helper->viewRenderer->setNoRender(true);
        /*-----------------------------------------------*/
        //---------Upload Icon APP
         
        $mScr = new Application_Model_Screenshot();
    
        if($_POST['upscreen']){
            $data = array();
            $result = array();$result['status']=1;
            $message = array();
            if($_FILES)$screen_app_file = $_FILES['screen_app'];
            $app_id = trim(strip_tags($_POST['id_app']));
            $mScr->app_id = $app_id;
            if(isset($screen_app_file)){
    
                $ImgUpload = new NVL_ImgUpload();
                $ImgUpload->file_size=2;
                $ImgUpload->file_type = array('jpg','png','jpeg');
                $icon_app = $ImgUpload->doUpload(_BASE_PATH,'uploads/app/'.$app_id.'/screen/', $screen_app_file,$screen_app_file['name'],$screen_app_file['name']);
                if($icon_app['status']=='success'){
                    $mScr->scr_link = $icon_app['path'];
                    $mScr->insertNew();
                    $message['path'] = _BASE_URL.'/'.$icon_app['path'].'?'.time();
                    //$mApp->updateData($data);
                }else{
                    $result['status']=0;
                    $message = array_merge($message,$icon_app['message']);
                }
            }else {
                $result['status']=0;
                $message[]='Bạn chưa chọn icon ứng dụng';
            }
    
            $result['message'] = $message;
            echo json_encode($result);
        }
    
    }
    public function add4Action()
    {
        $this->view->page_header = 'Tạo ứng dụng mới';
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=cssDev');
        $this->view->headScript()->appendFile(TEMPLATE_URL.'/min/g=jsDevApp4');
        $result = array();
        $message = array();
        $app_id = trim(strip_tags($this->getRequest()->getParam('id')));
        if($this->getRequest()->getPost()){
            $_post = $this->getRequest()->getPost();
            $mApp = new Application_Model_App();
            $mApp->app_id = $app_id;
            $mDevice = new Application_Model_Devices();
            $mDevice->app_id = $app_id;
            $mDevice->os_id = $_post['os'];
            $mDevice->vos_id = $_post['osv'];
            $mDevice->cp_id = $_post['compatible'];
        
            $data = array(
                    'cat_id'=>$_post['cat'],
            );
        
            $mApp->updateData($data);
            if($mDevice->insertNew()){
                $this->redirect(_BASE_URL.'/admin/app/add5?id='.$mApp->app_id);
            }
        }
    }

    public function add5Action()
    {
        $this->view->page_header = 'Tạo ứng dụng mới';
        $this->view->headLink()->appendStylesheet(TEMPLATE_URL.'/min/g=cssDev');
        //$this->view->headScript()->appendFile(TEMPLATE_URL.'/min/g=jsDevApp4');
        $result = array();
        $message = array();
        $app_id = trim(strip_tags($this->getRequest()->getParam('id')));
        if($this->getRequest()->getPost()){
            $_post = $this->getRequest()->getPost();
            $mApp = new Application_Model_App();
            $mApp->app_id = $app_id;
        
            $data = array(
                    'app_website'=>$_post['website_app'],
                    'app_email'=>$_post['email_app'],
                    'app_phone'=>$_post['phone_app'],
                    'app_date_create'=> date('Y-m-d H:i:s'),
                    'app_date_publish'=> date('Y-m-d H:i:s'),
                    'app_status'=>2
            );
        
            if($mApp->updateData($data)){
                $this->redirect(_BASE_URL.'/admin/app');
            }
        }
    }


}















